/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package interfacesGraficas;


import entidadesNegocio.Pedido;
import excepciones.ExpertoClienteExcepcion;
import excepciones.ExpertoPedidoException;
import interfacesGraficas.ModeloTablas.ModeloTablaBuscaProd;
import interfacesGraficas.ModeloTablas.ModeloTablaDetallePedido;
import interfacesGraficas.ModeloTablas.ModeloTablaPedido;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JInternalFrame;

/**
 *
 * @author eduardo
 */
public class ControladorPedidos extends Controlador{

private PantallaPedidos pantallaPedidos;
private PantallaNuevoPedido pantNvoPedido;
private ModeloTablaDetallePedido modeloTablaDetallePedido;
private ModeloTablaPedido modeloTablaPedido;
private ModeloTablaBuscaProd modeloTablaBuscaProd;
private Pedido pedidoSeleccionado;

private PantallaPedidoBuscarCliente pantPedBuscCliente;


    public ControladorPedidos() {
        pantallaPedidos = new PantallaPedidos();
        pantNvoPedido = new PantallaNuevoPedido();

        pantPedBuscCliente = new PantallaPedidoBuscarCliente();
        modeloTablaPedido = new ModeloTablaPedido();
        //modeloTablaDetallePedido = new ModeloTablaDetallePedido();
        pantallaPedidos.getTablaPedido().setModel(modeloTablaPedido);
        //pantNvoPedido.getTablaDetallePedido().setModel(modeloTablaDetallePedido);
        
        
 //pantalla pedidos
        pantallaPedidos.getTablaPedido().addMouseListener(new MouseAdapter() {
        
            @Override
            public void mouseClicked(MouseEvent e) {
                int fila = pantallaPedidos.getTablaPedido().rowAtPoint(e.getPoint());
              //  pedidoSeleccionado = modeloTablaPedido.buscarPedido(pantallaPedidos.getTablaPedido().getValueAt(fila, 1).toString());

               // if (e.getClickCount() == 2) {
                  //  try {
                        //actualizarCliente();

                   // } catch (ExpertoPedidoException ex) {
                     //   Logger.getLogger(ControladorABMClientes.class.getName()).log(Level.SEVERE, null, ex);
                   // }
                //}
            }
        
        
        });
        
        pantallaPedidos.getBotonNuevoPedido().addActionListener(new ActionListener() {
            
            public void actionPerformed(ActionEvent ae) {
                nuevoPedido();
            }
        });

        pantallaPedidos.getBotonActualizarPedido().addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {
                modificarPedido();
            }
        });

        pantallaPedidos.getBotonEliminarPedido().addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {
                eliminarPedido();
            }
        });

        pantallaPedidos.getBotonSalir().addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {
                finalizar();
            }
        });
        
        pantallaPedidos.getjRadioButtonNPedido().addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {
                if (pantallaPedidos.getjRadioButtonNPedido().isSelected()) {
                    pantallaPedidos.getCampoNroPedido().setEnabled(true);
                    pantallaPedidos.getCampoFechaDesde().setEnabled(false);
                    pantallaPedidos.getCampoFechaHasta().setEnabled(false);
                    
                
                }
            }
        });
        
        pantallaPedidos.getjRadioButtonFechaDesde().addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {
                 if(pantallaPedidos.getjRadioButtonFechaDesde().isSelected()){
                    pantallaPedidos.getCampoNroPedido().setEnabled(false);
                    pantallaPedidos.getCampoFechaDesde().setEnabled(true);
                    pantallaPedidos.getCampoFechaHasta().setEnabled(true);
                }
            }
        });
        
        pantallaPedidos.getBotonBuscarPedido().addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {
                buscarPedidos();
            }
        });
        
//pantalla nuevos pedidos        
        pantNvoPedido.getBotonBuscarCliente().addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {
                buscarCliente();
            }
        });

        pantNvoPedido.getBotonBuscarViajante().addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {
                buscarViajante();
            }
        });

        pantNvoPedido.getBotonGuardarNvoPedido().addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {
                guardarPedido();
            }
        });

        pantNvoPedido.getBotonSalirNvoPedido().addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {
                finalizarPantNvoPedido();
            }
        });
        
        pantNvoPedido.getBotonAgregaProducto().addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {
            //poner el método de búsqueda
            }
        });
        
//pantalla busca producto
        
       
//pantalla pedido buscar cliente
        pantPedBuscCliente.getBotonSalir().addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ae) {
                pantPedBuscCliente.setVisible(false);
            }
        });
    }
    

    



    public void nuevoPedido(){
        
        pantNvoPedido.setVisible(true);
        pantNvoPedido.setLocationRelativeTo(null);
        modeloTablaDetallePedido = new ModeloTablaDetallePedido();
        pantNvoPedido.getTablaDetallePedido().setModel(modeloTablaDetallePedido);
    }

    public void modificarPedido(){

    }

    public void eliminarPedido(){

    }

    public void buscarCliente(){
        
        pantPedBuscCliente.setVisible(true);
        pantPedBuscCliente.setLocationRelativeTo(null);

    }

    public void buscarViajante(){

    }

    public void guardarPedido(){
        
    }
    
    
    @Override
    public void iniciar() {
        pantallaPedidos.setVisible(true);
    }

    @Override
    public void finalizar() {
        pantallaPedidos.setVisible(false);
    }
    
    public void finalizarPantNvoPedido(){
        pantNvoPedido.setVisible(false);
    }

    @Override
    public void continuar() {
        pantallaPedidos.setVisible(true);
    }
    
    @Override
    public JInternalFrame getPantalla() {
        return pantallaPedidos;
    }
    
    public Pedido buscarPedidos(){
        return null;
    }

}
